1. Field of the Invention
The present invention relates to a remote procedure calling expression generation system for generating a procedure calling expression to execute a procedure remotely in a distributed computing environment where a resource object and a procedure for executing processing for a resource object are distributed, particularly relates to a remote procedure calling expression generation system for generating a procedure calling expression for requesting high functional service having high value added by combining plural remote procedure servers.
More specifically, the present invention relates to a remote procedure calling expression generation system for dynamically and efficiently generating a calling expression for calling complex service acquired by synthesizing plural remote procedures in a distributed computing environment where a resource object and the contents of processing respectively provided by each server vary dynamically.
The present invention targets a world wide web (WWW system developed on the Internet which is a worldwide network as distributed computing system and can be applied in the case processing for a hyper text transfer protocol (HTTP) object which each HTTP server in WWW resource space manages, that is, a remote procedure is called using an HTTP request including a uniform resource locator (URL).
2. Description of the Related Art
Recently, technology related to network computing for mutually connecting computer systems via a network is actively developed. The object of the connection of computers via a network is made up of sharing mutual computer resources and the distribution and sharing of information.
For a communication medium for connecting computers, a local area network (LAN) installed in limited space such as inside an enterprise and an institute and a wide area network (WAN) in which LANs are connected via a dedicated line and others can be given. Recently, the Internet which is an enormous network covering the world is actively utilized. The Internet is a worldwide wide area network as the name shows and servers (mainly UNIX workstations) on the Internet are connected according to a transmission control protocol/internet protocol (TCP/IP).
Each resource object distributed on the Internet is specified by a reference (or a name) in a format of a URL. The URL means a character string for specifying the name and the location of a resource in resource space such as a network and is described in a format of a scheme name (a protocol name)://host name (domain name):port number/path name (fine name). URL is described in requests for comments (RFC) 1738 and 1808 for example. Also, a host name described above complies with a domain name system which is name service used in a network according to TCP/IP.
Various resource provision services are open on the Internet. WWW which is the typical example is a distributed information retrieval system for widely providing a resource object with hyperlink structure described in language in a markup format of hyper text markup language (HTML) on the Internet. A resource access is normally performed between a WWW server and a WWW client according to HTTP. HTML is described in RFC 1866 for example. Each resource object in an HTML format is also provided with a reference in a URL format described above. HTTP is described in RFCs 1945 and 2068 for example.
Currently, most computer systems on networks including the Internet are configured in distributed environment. This comes from the fact that in a centralized system, a load concentrates on one host, the host cannot meet increased clients and distributed environment that enables mutual equal connection is excellent in the extension of a network and safety.
In distributed network environment, each user is not required to recognize the location of a resource object such as a program and data particularly. Also, a procedure and a method executed by a computer are distributively stored and managed on a network. For example, a method called a remote procedure call (RPC) or a remote method invocation (RMI) that a process run on one computer on a network invokes a procedure for a process run on another computer and has the process executed is also widely adopted. Such a remote procedure call can be suitably implemented by describing an interface of an executed procedure beforehand and installing it in both a calling computer and a called computer.
One of typical examples of a remote procedure call is the topology of an application program called a common gateway interface (CGI). When CGI is used, a WWW client user can issue a request for CGI by entering his/her own personal information and the contents of a request such as a retrieval item in an input form prepared on the screen of a WWW browser and sending it. A WWW server on the other hand activates an external program (a CGI program) according to CGI because the server itself has no function for processing a request for CGI to have the request for CGI processed. The external program may also be activated on the same WWW server and on another server. The external program retrieves a database according to a retrieval item CGI of which is requested for example and returns the result of processing to the WWW server in an HTML format. When the WWW server transfers this to the WWW client, a WWW page meeting the request is provided on the WWW browser screen of the WWW client.
CGI is a standard protocol in which an environmental variable, a command line, standard input, standard output between a server and a CGI program and others are defined and if only this protocol is met, a CGI program may also be described in any language format. For example, a CGI program can be generated using various language such as Visual Basic, C language, Delphi and Perl (generally, Perl in which the processing of a character string is easy is often used in UNIX and Visual Basic is often used in Windows NT).
However, CGI is not provided with a mechanism required for a CGI application program to activate service provided by further another WWW server and others. That is, it is difficult to provide complex service by combining plural remote procedure servers.
Also, Japanese Published Unexamined Patent Application No. Hei 6-75892 discloses another example of a remote procedure call. A remote procedure manager described in the patent application is provided with a system remote procedure request unit that requests a remote procedure for service provided by a system, a system remote procedure execution unit that executes processing for the remote procedure for the service provided by the system, a system remote procedure management unit that manages plural remote procedures for the service provided by the system corresponding to the system remote procedure execution unit based upon a remote procedure identifier unique in the network system and a system procedure preprocessor that is called by a stub for executing a remote procedure call, that inquires of the system remote procedure management unit, that decides a remote procedure for the system to be called and that calls the corresponding system remote procedure execution unit.
According to the remote procedure manager, if a stub on the remote side judges that a remote procedure call is not a remote procedure for application service when the remote procedure call of system service is executed by the system remote procedure request unit, the system procedure preprocessor is called and can call the remote procedure for the system service by retrieving the system remote procedure management unit using a requested remote procedure identifier and having the system remote procedure execution unit for executing calling service execute decision processing without defining a remote procedure for system service in an interface between application programs.
Also, ANSA information service framework of Architecture Projects Management Limited (England) is a distributed system based upon common object request broker architecture (CORBA) and WWW. In the distributed system, an Internet Inter-ORB Protocol (HOP) for transferring a general Inter-ORB protocol using an Internet protocol (IP) is used and an access from WWW to a CORBA object is enabled by preparing a gateway for converting HTTP to HOP and a gateway for converting HOP to HTTP.
ANSA information service framework is described in xe2x80x9cA Web of Distributed Object, The ANSA Projectxe2x80x9d (http://www.ansa.co.uk/ANSA/ISF/wdistobj/Overview. html) written by 0. Rees, N. Edwards, M. Madsen, M. Beasley and A. McClenaghan and published in 1995 by Architecture Projects Management, Ltd. for example.
Also, DeleGate is a multiple use protocol relay system researched and developed by Yutaka Sato, an employee at Electrotechnical Laboratory. DeleGate provides various functions of path control, access control, protocol conversion, character code conversion, code conversion in Multipurpose Internet Mail Extensions (MIME), a data cache, a connection cache, relay for an existing application and mounting. However, DeleGate does not provide a system such as synthesizes a remote procedure call desired by a user by combining plural DeleGates in a network.
DeleGate is disclosed in xe2x80x9cMultiple Use Protocol Relay System DeleGatexe2x80x9d (Vol. 59, No. 6)(ftp://etlport.etl.go.jp/pub/DeleGate/ETL-BULLETIN-95-06.ps.gz) written by Yutaka Sato and published in 1995 by Electrotechnical Laboratory for example.
Recently, the provision of further high functional service having high value added by combining plural remote procedure servers has been requested.
FIG. 3 schematically shows circumstances in which a complex resource object is provided by synthesizing plural remote procedures.
In an example shown in FIG. 3, a server B provides the result OB of the execution of a procedure PB which takes an object OBI and an object OB2 as inputs. Also, a server C provides, the result OC of the execution of a procedure PC which takes an object OC1, an object OC2 and an object OD output by a procedure PD executed by a server D as inputs. A server A executes a procedure PA for acquiring the objects OB and OC respectively provided by the servers B and C.
The procedures PA, PB, - - - in each server A, B, - - - apply the processing such as the association and concatenation of input objects to the input objects. Also, if an object is an HTTP object for outputting a WWW page, processing provided by each server A, B, - - - may also be the generation of the summary of WWW page information including a screen showing a reduced page, a header and the display of a reference link and the combination of pages.
Each of the remote procedure servers A, B, - - - may also belong to the same steering body and may also be divided into different corporate bodies and organizations. Further, each remote procedure server A, B, - - - may also be distributed all over the world.
To implement complex resource provision service shown in FIG. 3, a mechanism in which plural remote procedure servers are combined, that is, in which a called remote procedure further calls another remote procedure server is required.
URL is originally used for a name, that is, an identifier of a resource object, however, recently, URL is also often utilized for a call of a procedure. For example, the execution of a remote procedure can be requested by sending URL generated by concatenating a server which manages a procedure and a procedure name to be called as an HTTP message. For example, in Internet drafts by Internet Engineering Task Force (IETF), it is defined that URL should be used to call a CGI program.
Further, if a service in which plural remote procedure servers are combined is requested, URL generated by synthesizing URL character strings specifying each remote procedure can be utilized for a remote procedure calling expression.
A URL character string synthesized to call plural remote procedure servers is necessarily complex. If the contents of processing included in a remote procedure, that is, a remote procedure to be called is fixed, URL once generated can be continuously used. However, actually, in an open distributed network, the combination of remote procedure calls can vary from moment to moment. In the example shown in FIG. 3, there is a case where the contents PB of processing executed by the remote procedure server B are to be changed from the merge of the objects OB1 and OB2 to the summary of the objects OB1 and OB2. Or as the remote procedure server D in charge of a part of a series of processing is closed, there is also a case where the contents of processing executed by the remote procedure server C are required to be modified.
In such a case, every time the combination of remote procedures is varied, a synthetic URL expression for a remote procedure call first generated is required to be modified or changed. As the combination of called remote procedures becomes complex and comes to have multiple levels, work for modifying or changing a synthetic expression becomes more and more troublesome and difficult.
Also, all sites related to a remote procedure call do not belong to the same organization and it is impossible to completely grasp the change of the combination of remote procedure calls at one certain specific site. For example, in the example shown in FIG. 3, for a site in a route in which a final WWW page is passed to a client, in such a case, work for generating a synthetic URL expression for a remote procedure call is not only troublesome but almost impossible.
The invention is made to solve the technical problems described above and provides an excellent remote procedure calling expression generation system in which a procedure calling expression for executing a procedure remotely can be dynamically and efficiently generated in a distributed computing environment where a resource object and a procedure for processing for a resource object are distributed.
The invention further provides an excellent remote procedure calling expression generation system in which a procedure calling expression for enabling requesting high functional service having high value added by combining plural remote procedure servers can be dynamically and efficiently generated.
The invention further provides an excellent remote procedure calling expression generation system in which a procedure calling expression for calling complex service made up of synthesizing plural remote procedures can be dynamically and efficiently generated.
The invention further provides an excellent remote procedure calling expression generation system in which URL for requesting complex service made up of combining plural remote procedure servers can be dynamically and efficiently generated in WWW resource space where an HTTP object and processing for an HTTP object, that is, a procedure (method), are distributed.
The invention further provides an excellent remote procedure calling expression generation system in which URL for requesting complex service made up of combining plural remote procedure servers can be dynamically and efficiently generated in WWW resource space where an HTTP object and processing for an HTTP object, that is, a procedure (method), are distributed.
The invention is made to solve the problems described above, a first aspect is based upon a system for generating a remote procedure calling expression for requesting service made up by combining plural procedures in resource space in which a resource object and a procedure for processing a resource object are distributed and relates to a remote procedure calling expression generation system characterized in that plural hyperobject sections are provided, each hyperobject section is provided with a procedure calling expression generation rule storage section for storing a procedure calling expression generation rule for generating a procedure calling expression, one or more attribute storage sections for storing an attribute value and a link storage section for storing one or more pieces of link information of the other hyperobject sections, and a procedure calling expression generation rule stored in the procedure calling expression generation rule storage section includes a character string according to a predetermined syntax rule for describing one or more generation rule elements made up of the reference to an attribute value and/or the reference to the result of the generation of a procedure calling expression in the linked hyperobject section.
The hyperobject section described above may also be further provided with a generation rule element extracting section for interpreting a procedure calling expression generation rule stored in the procedure calling expression generation rule storage section according to the predetermined syntax rule and extracting a generation rule element, a section for searching the attribute storage section if the extracted generation rule element is the reference to an attribute value and substituting the corresponding attribute value for the generation rule element and a section for issuing a request for generating a procedure calling expression to the Linked hyperobject section if the extracted generation rule element is the reference to the result of the generation of a procedure calling expression in the linked hyperobject section and substituting the result of the generation of the procedure calling expression by the linked hyperobject section for the generation rule element. A procedure calling expression for requesting complex service made up of combining plural procedures can be dynamically and efficiently generated by activating these sections in response to a request for generating a procedure calling expression.
The hyperobject section described above may also be an object-oriented program for generating a hypertext. The program can be described using Java programming language for example.
Also, a second aspect of the invention is based upon a remote procedure calling expression generation system for generating URL for requesting service made up by combining plural procedure servers in WWW resource space in which an HTTP object and a procedure for processing an HTTP object are distributed and relates to a remote procedure calling expression generation system characterized in that plural hyperobject sections are provided, each hyperobject section is provided with a URL generation rule storage section for storing a URL generation rule for generating URL as a procedure calling expression, one or more attribute storage sections for storing an attribute value and a link storage section for storing one or more pieces of link information of the other hyperobject sections, and a URL generation rule stored in the URL generation rule storage section includes a character string according to a predetermined syntax rule for describing one or more URL generation rule elements including the reference to an attribute value and/or the reference to the result of the generation of URL in the linked hyperobject section.
The hyperobject section described above may also be further provided with a URL generation rule element extracting section for interpreting a URL generation rule stored in the URL generation rule storage section according to the predetermined syntax rule and extracting a URL generation rule element, a section for searching the attribute storage section if the extracted URL generation rule element is the reference to an attribute value and substituting the corresponding attribute value for the URL generation rule element and a section for issuing a request for generating URL to the linked hyperobject section if the extracted URL generation rule element is the reference to the result of the generation of URL in the linked hyperobject section and substituting the result of the generation of URL by the linked hyperobject section for the URL generation rule element. A procedure calling expression for requesting complex service made up by combining plural procedure servers in WWW resource space can be dynamically and efficiently generated by activating these sections in response to a request for generating URL.
Also, a third aspect of the invention is based upon a hyperobject for generating a remote procedure calling expression for requesting service made up by combining plural procedures in resource space in which a resource object and a procedure for processing a resource object are distributed and relates to a hyperobject characterized in that a procedure calling expression generation rule storage section for storing a procedure calling expression generation rule for generating a procedure calling expression, one or more attribute storage sections for storing an attribute value and a link storage section for storing one or more pieces of link information of the other hyperobjects are provided, wherein a procedure calling expression generation rule stored in the procedure calling expression generation rule storage section includes a character string according to a predetermined syntax rule for describing one or more generation rule elements including the reference to an attribute value and/or the reference to the result of the generation of a procedure calling expression in a linked hyperobject.
The hyperobject in the third aspect of the invention is an object-oriented program for generating a hypertext for example and can be described using Java programming language. The hyperobject can include processing including a step for interpreting a procedure calling expression generation rule stored in the procedure calling expression generation rule storage section according to the predetermined syntax rule and extracting a generation rule element, a step for searching the attribute storage section if the extracted generation rule element is the reference to an attribute value and substituting the corresponding attribute value for the generation rule element and a step for issuing a request for generating a procedure calling expression to the linked hyperobject if the extracted generation rule element is the reference to the result of the generation of a procedure calling expression in the linked hyperobject and substituting the result of the generation of the procedure calling expression by the linked hyperobject for the generation rule element. A procedure calling expression for requesting complex service made up by combining plural procedures can be dynamically and efficiently generated by activating such processing in response to a request for generating a procedure calling expression.
Also, a fourth aspect of the invention is based upon a hyperobject for generating URL for requesting service made up by combining plural procedure servers in WWW resource space in which an HTTP object and a procedure for processing an HTTP object are distributed and relates to a hyperobject characterized in that a URL generation rule storage section for storing a URL generation rule for generating URL as a procedure calling expression, one or more attribute storage sections for storing an attribute value and a link storage section for storing one or more pieces of link information of the other hyperobjects are provided, wherein a URL generation rule stored in the URL generation rule storage section includes a character string according to a predetermined syntax rule for describing one or more URL generation rule elements including the reference to an attribute value and/or the reference to the result of the generation of URL in a linked hyperobject.
The hyperobject related to the fourth aspect of the invention is an object-oriented program for generating a hypertext for example, is described using Java programming language and can be activated on a WWW browser. The hyperobject can include processing having a step for interpreting a URL generation rule stored in the URL generation rule storage section according to the predetermined syntax rule and extracting a URL generation rule element, a step for searching the attribute storage section if the extracted URL generation rule element is the reference to an attribute value and substituting the corresponding attribute value for the URL generation rule element and a step for issuing a request for generating URL to a linked hyperobject if the extracted URL generation rule element is the reference to the result of the generation of URL in the linked hyperobject and substituting the result of the generation of URL by the linked hyperobject for the URL generation rule element. A procedure calling expression in a URL format for requesting complex service made up by combining plural procedure servers in WWW resource space can be dynamically and efficiently generated by activating such processing in response to a request for generating URL.
Other characteristics and advantages of the invention will become clear by the more detailed description of an embodiment described later of the invention based upon the attached drawings.